Micron Document
Gopher Proxy


forthworks.com:70 forthworks.com:70/0/blog/posts/20170130
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
## January 30, 2017

### Formatted String Output in RETRO 12

For simple output Retro provides a few functions:

* putn
* putc
* puts

And so on. Each handles a specific type. The problem: displaying multiple things can get messy.

Consider:

#1 putn $+ putc #2 putn
$= putc #3 putn

With formatted output strings this can become:

#3 #2 #1 '%n+%n=%n putsf

Formatting Options:

A \ denotes a control character. Currently this supports:

* \n - newline
* \t - tab

A % denotes a stack value to display. This currently supports:

* %c - character
* %s - string
* %n - number

Anything else is displayed as the character.

''''
{{
:char fetch-next
$n [ nl ] case
$t [ ASCII:HT putc ] case
putc ;

:obj fetch-next
$c [ swap putc ] case
$s [ swap puts ] case
$n [ swap n:to-string puts ] case
putc ;

:display
$\ [ char ] case
$% [ obj ] case
putc ;
---reveal---
:putsf
[ repeat
fetch-next 0; display
again
] call drop ;
}}
''''

you're on forthworks.com^70/0/blog/posts/20170130
back link is forthworks.com:70/1/phlog